package 数组.easy;

import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;

/**
 * @author Lw中
 * @date 2020/8/15 8:59
 */
public class YiYiJiu {

    public static List<Integer> getRow(int rowIndex) {
        // 方法一：新建一个list数组，用于存储list集合
//        List<Integer> list[] = new ArrayList[rowIndex+1];
//        for (int i = 0; i <= rowIndex; i++) {
//            list[i] = new ArrayList<>();
//            if (i == 0) {
//                list[i].add(1);
//            } else if (i == 1) {
//                list[i].add(1);
//                list[i].add(1);
//            } else {
//                for (int j = 0; j < i + 1; j++) {
//                    if (j == 0 || j == i) {
//                        list[i].add(1);
//                    } else {
//                        list[i].add(list[i-1].get(j)+list[i-1].get(j-1));
//                    }
//                }
//            }
//        }
//        return list[list.length - 1];

        // 方法二：对上面的方法进行优化
        List<Integer> list1 = new ArrayList<>();
        List<Integer> list = new ArrayList<>();
        for (int i = 0; i <= rowIndex; i++) {
            list = new ArrayList<>();
            for (int j = 0; j <= i; j++) {
                if (j == 0 || i == j) {
                    list.add(1);
                } else {
                    list.add(list1.get(j - 1) + list1.get(j));
                }
            }
            list1 = list;
        }
        return list;
    }

    public static void main(String[] args) {
        List<Integer> row = getRow(3);
        for (int i = 0; i < row.size(); i++) {
            System.out.println(row.get(i));
        }
    }

}
